Speech coding is generally used for communication applications using narrowband speech of the telephone band (200 Hz to 3.4 kHz). Narrowband speech codec of monaural speech is widely used in communication applications including speech communication through mobile phones, remote conference devices and recent packet networks (e.g. the Internet).
In recent years, with broadbandization of communication networks, there is a demand for realistic sensation in speech communication and high quality of music. To meet this demand, speech communication systems using stereo speech coding techniques have been developed.
As a method of encoding stereo speech, there is a known conventional method of finding a monaural signal to represent a sum of the left channel signal and the right channel signal, finding a side signal to represent the difference between the left channel signal and the right channel signal, and encoding the monaural signal and the side signal (see Patent Literature 1 and Patent Literature 2).
The left channel signal and the right channel signal represent sound heard by human ears, the monaural signal can represent the common part between the left channel signal and the right channel signal, and the side signal can represent the spatial difference between the left channel signal and the right channel signal.
There is a high correlation between the left channel signal and the right channel signal. Consequently, compared to the case of encoding the left channel signal and the right channel signal directly, it is possible to perform more suitable coding in accordance with features of a monaural signal and side signal by encoding the left channel signal and the right channel signal converted into a monaural signal and a side signal, so that it is possible to realize coding with less redundancy, low bit rate and high quality.
Patent Literature 2 discloses a method of transforming left channel signal L and right channel signal R of a stereo signal into monaural signal M and side signal S using two weight coefficients W1 and W2, as shown in equations 1-1 and 1-2.
[1]y1,i=W1·x1,i+W2·x2,i  (Equation 1-1)y2,i=−W2·x1,i+W1·x2,i  (Equation 1-2)
Also, in equations 1-1 and 1-2, x1,i represents left channel signal L, and x2,i represents right channel signal R. Also, y1,i represents monaural signal M, and y2,i represents side signal S. Also, i represents an index to represent time.
Left channel signal L and right channel signal R refer to signals to enter from the left and right sides of the human head and are highly correlated, so that it is possible to find a signal representing most of the left and right signals by monaural signal M and find a signal representing the spatial difference between the left and right signals by side signal S. Thus, by transforming left channel signal L and right channel signal R into monaural signal M and side signal S, it is possible to perform coding suitable to their features, and, compared to a case of encoding left channel signal L and right channel signal R directly, realize coding with less redundancy, low bit rate and high quality.
At this time, by setting two weight coefficients W1 and W2 to satisfy the relationship of equation 2, equations 1-1 and 1-2 are equivalent to rotating vectors of left channel signal L and right channel signal R.(Equation 2)W12+W22=1  [2]
The relationships between rotation angle α and weight coefficients W1 and W2 in this case are shown in equations 3-1 and 3-2.
[3]W1=cos(α)  (Equation 3-1)W2=sin(α)  (Equation 3-2)
If the decoding side knows rotation angle α, it is possible to provide W1 and 1,A,12 from the relationships in equations 3-1 and 3-2. Therefore, instead of two weight coefficients W1 and W2, rotation angle α needs to be reported to the decoding side, so that, compared to a case of reporting two weight coefficients W1 and W2, it is possible to improve the efficiency of coding. Also, instead of rotation angle α, it is equally possible to report one of two weight coefficients W1 and W2 to the decoding side. This is because two weight coefficients W1 and W2 satisfy the relationship in equation 2 and therefore one of these is identified when the other is identified.
Patent Literature 2 discloses a method of finding the above weight coefficients by a principal component analysis and reporting one of these two weight coefficients to the decoding side. To be more specific, a repetition method using Oja's rule is disclosed.
Further, Non-Patent Literature 1 and Non-Patent Literature 2 disclose a method of performing a principal component analysis using KL (Karhunen-Loeve) transform. To be more specific, an algorithm of finding by KL transform an rotation angle for transforming two vectors, is disclosed. For example, Non-Patent Literature 2 discloses a method of finding rotation angle θ from the power of the first signal, the power of a second signal and the correlation value of the first signal and the second signal. Rotation angle θ is derived by an algorithm of finding an eigenvector (in which the square sum of the elements is 1) by eigenvalue expansion using a two-dimensional correlation matrix. With a method of quantizing and transmitting resulting rotation angle θ, it is possible to demultiplex and encode signals efficiently. As an example of quantization, there is scalar quantization using a table.
The quantization method disclosed in Non-Patent Literature 2 will be explained below.
First, using equations 4-1 to 4-3, power C11 of input left channel signal L, power C22 of input right channel signal R and correlation value C12 are calculated.
                    (                  Equation          ⁢                                          ⁢          4          ⁢                      -                    ⁢          1                )                                                                      C          11                =                              ∑            i                    ⁢                                    x                              1                ,                i                                      ·                          x                              1                ,                i                                                                        [        4        ]                                (                  Equation          ⁢                                          ⁢          4          ⁢                      -                    ⁢          2                )                                                                      C          22                =                              ∑            i                    ⁢                                    x                              2                ,                i                                      ·                          x                              2                ,                i                                                                                                        (                  Equation          ⁢                                          ⁢          4          ⁢                      -                    ⁢          3                )                                                                      C          12                =                  ∑                                    x                              1                ,                i                                      ·                          x                              2                ,                i                                                                                    
Further, using power C11 and C22 and correlation value C12, rotation angle α is calculated. Non-Patent Literature 2 discloses a method of calculating a rotation angle by PCA (Principal Component Analysis), which is one method of finding KL transformation coefficients. The equation for calculating a rotation angle disclosed in Non-Patent Literature 2 is shown in equation 5.
      (          Equation      ⁢                          ⁢      5        )                                            α            =                                          0.5                ·                                                      tan                                          -                      1                                                        ⁡                                      [                                                                  2                        ·                                                  C                          12                                                                                                                      C                          11                                                -                                                  C                          22                                                                                      ]                                                              +              0                                ⁢                                          ⁢                      (                                                            when                  ⁢                                                                          ⁢                                      C                    11                                                  -                                  C                  12                                            ≥              0                        )                    +                                    π              /              2                        ⁢                          (              else              )                                                            [          5          ]                    
Then, from a plurality of pairs each associating a rotation angle and a quantization code in advance, the quantization code associated with the rotation angle closest to rotation angle α obtained in equation 5, is reported to the decoding side. By this means, compared to a case of reporting two transformation coefficients W1 and W2 required upon performing a principal component analysis, it is possible to improve the efficiency of coding.
Thus, according to Non-Patent Literature 2, by quantizing a rotation angle upon transforming two vectors (signals or spectrums) into different vectors by a principal component analysis, efficient coding is performed. Also, Non-Patent Literature 1 discloses an example of using KL transformation coefficients themselves as the quantization target, instead of a rotation angle.